Recently, with the rapid propagation and distribution of smart apparatuses and the expansion of network infrastructure, a robot system has been developed from a stand-alone type in the past to a network-based type capable of maximize the use of resources in a Ubiquitous environment.
The network robot system, which is an Ubiquitous robot converging a robot and a system to provide various services to a user anytime or anywhere, implies a system that supports cooperation between heterogeneous robots by providing a function of controlling a plurality of robots while reducing costs by minimizing components mounted in a robot, provides high performance robot services by connecting with a backend server, and includes a context aware module to allow a robot to be aware of surrounding environments in order to provide the best services under each surrounding environment.
Real-time, stability, and reliability are indispensible to the network-based robot control system. In addition, the network-based robot control system provides various functions to precisely control a robot while considering extensibility. In order to satisfy these conditions, a plurality of network robot systems, which are recently being researched and developed, have employed a remote procedure calls (RPC) scheme.
The remote procedure calls scheme used to control a robot is executed in a synchronous scheme or an asynchronous scheme. Generally, simple works done in a short time such as reading values or acquiring status values from sensors, or the like, are executed in a synchronous procedure calls scheme, while works done in a relatively long time such as a movement of a robot, a control of operation parts of a head/an arm of a robot, or the like, or an interaction with a user are executed in an asynchronous procedure calls scheme.
In particular, the asynchronous procedure calls scheme implies a remote procedure calls scheme that hands over control objects capable of controlling the operation execution when calling a remote procedure and returning results of the operation when the operation ends.
In order for a robot to provide higher performance services, various services should be processed simultaneously, which are achieved by a plurality of asynchronous operation manners at any time. To this end, there is a need for a method for appropriately processing at least one asynchronous operation. Further, there is a need to solve a collision problem of a control right for a robot apparatus and environment resources that are caused due to the parallel execution of the plurality of asynchronous operations.